// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import API from './API'
import API_MAP from '@admin/views/System/IOT/IOTList/store/API_MAP'

// ============================== 导出异步调用 ============================== //

export default {
  // —————————————————————————————— 列表 —————————————————————————————— //

  async remoteList({ state: { param } }) {
    if (!param.parkId) return [0, []]

    const [num, arr] = await API.getList(param)
    return [num, transList(arr)]
  },

  // —————————————————————————————— 单项 —————————————————————————————— //

  async remoteOne({ state }) {
    const obj = await API.getOne(state.one)
    return transOne(obj)
  },
  transOne(obj) {
    (obj.entranceDto || []).forEach((item) => {
      item.oldAreaId = item.areaId
    })
    return obj
  },

  // —————————————————————————————— 增 —————————————————————————————— //

  async remoteAdd({ state: { one } }) {
    const msg = await API.add(one)
    return msg
  },

  // —————————————————————————————— 改 —————————————————————————————— //

  async remoteEdit({ state: { one } }) {
    const msg = await API.edit(one)

    if (CORE.MAP.MAP_SAME_AREA && one.areaId !== one.oldAreaId) { // 删除打点
      await API_MAP.mapDel({ deviceId: one.id, deviceCategoryId: '3' })
    }

    return msg
  },

  // —————————————————————————————— 删 —————————————————————————————— //

  async remoteDel({ state: { one } }) {
    const msg = await API.del(one)
    return msg
  },
}

// ============================== 转换方法 ============================== //

const transList = (arr) => {
  return arr
}

const transOne = ({ entrance, content }) => {
  return { ...entrance, roadway: content }
}
